package org.jeecg.modules.fund.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Select;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.bank.entity.YcUserhomeBank;
import org.jeecg.modules.bank.entity.YcYingshengBank;
import org.jeecg.modules.front.entity.vo.WithdrawFund;
import org.jeecg.modules.front.entity.vo.WithdrawOrder;
import org.jeecg.modules.front.util.YinShengUtil;
import org.jeecg.modules.fund.entity.UserhomeFund;
import org.jeecg.modules.fund.entity.UserhomeOrder;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.fund.entity.UserhomeWalletLog;
import org.jeecg.modules.fund.entity.YcYingshengTransfer;
import org.jeecg.modules.gongqiang.entity.Userhome;
import org.springframework.transaction.annotation.Transactional;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: 基金订单表
 * @Author: jeecg-boot
 * @Date:   2024-08-29
 * @Version: V1.0
 */
public interface IUserhomeOrderService extends IService<UserhomeOrder> {
    IPage<UserhomeOrder> pageList(Page<UserhomeOrder> page, QueryWrapper<UserhomeOrder> queryWrapper);

    UserhomeOrder getByIdLock(String orderId);




    void operateStatus(String orderId,Integer status);


    public Result<JSONObject> callBack(String outTradeNo, String totalAmount,String tradeSn);

    public Result<?> handleSupplement(String outTradeNo);

    Result<?> withraw(Userhome userhome, WithdrawOrder withdrawOrde);

    Result<?> examine(UserhomeOrder userhomeOrder);



     Result<JSONObject> callBacktransferInner(String outTradeNo,String tradeSn,String prefix) ;

    Result<JSONObject> callBackFa(String outTradeNo,String tradeSn) ;

     Result<?> withrawFund(Userhome userhome, WithdrawFund withdrawFund,String orderNum);

     Result<?> examineFund(UserhomeOrder userhomeOrder);

     Result<JSONObject> callBackFa2(String outTradeNo,String tradeSn);


    Result<?> withrawFundMoney(Userhome userhome, WithdrawOrder withdrawOrde);

    Result<?> examineFundMoney(UserhomeOrder userhomeOrder);










}
